package com.baitengsoft.patentapimonitor.common.utils;

import cn.hutool.core.util.CharsetUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.AES;
import org.apache.commons.lang.StringUtils;

/**
 * @author wangze
 * @date 2018-03-08 9:57.
 **/

public class EncryptionStrategy {

    private static final AES aes = SecureUtil.aes("34Af8Dc603AC5dF0".getBytes(CharsetUtil.CHARSET_UTF_8));

    /***
     * 加密
     * @param str
     * @return
     */
    public static String encrypt(String str) {
        if (StringUtils.isBlank(str)) {
            return StringUtils.EMPTY;
        }
        return aes.encryptHex(str);
    }

    /**
     * 解密
     *
     * @param str
     * @return
     */
    public static String decrypt(String str) {
        if (StringUtils.isBlank(str)) {
            return StringUtils.EMPTY;
        }
        return aes.decryptStr(str, CharsetUtil.CHARSET_UTF_8);
    }


    public static void main(String[] args) {
        String content = "123123";
        // 随机生成密钥
        byte[] key = "34Af8Dc603AC5dF0".getBytes(CharsetUtil.CHARSET_UTF_8);
        // 构建
        AES aes = SecureUtil.aes(key);

        // 加密
        byte[] encrypt = aes.encrypt(content);
        // 解密
        byte[] decrypt = aes.decrypt(encrypt);
        // 加密为16进制表示
        String encryptHex = aes.encryptHex(content);
        // 解密为字符串
        String decryptStr = aes.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8);

        System.out.println(encryptHex);
    }

}
